60

     # Flask web-приложение для статичных файлов

Чтобы поднять flask-приложение, создаём пустой файл с расширением .py, напр.: my_webapp.py.

Содержимое файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from flask import Flask, render_template
from waitress import serve

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('index.html')

if __name__ == "__main__":<br>
    serve(app, host="0.0.0.0", port=8080)

Объяснение содержимого файла

from flask import Flask, render_template - импортируем фреймворк Flask, а также функцию render_template, которая будет отображать наши статические файлы

from waitress import serve - импортируем функцию serve, которая отвечает за запуск приложения

app = Flask(name) - создаём экземпляр нашего приложения через фреймворк Flask, назвав его app.

@app.route("/") - вешаем обработчик на корневую директорию, т. е. все вызовы на http:localhost:8080/ будут обрабатываться в этом обработчике

def index(): - название функции, выполняемой при вызове обработчика "/"

return render_template('index.html') - при любом обращении на адрес / мы будем отображать страницу index.html. Важно: render_template читает только файлы, лежащие в папке templates. Поэтому нужно создать директорию templates рядом с файлом my_webapp.py и положить туда index.html. Структура должна выглядеть следующим образом:

├── my_webapp.py
└── templates
    └── index.html

if name == "main": - данная строка запускает наше приложение, когда мы вызываем его через: python3 my_webapp.py.

serve(app, host="0.0.0.0", port=8080) - конфигурация нашего приложения, где ip 0.0.0. говорит о том, что приложение доступно с / для любого ip-адреса (а не, напр., только локально), а port=8080 - это конфигурирование порта, на котором оно будет крутиться.

Запуск приложения

Перед запуском нужно пройти 2 шага:

  • убедиться, что на машине установлен python3 и pip
  • установить необходимые зависимости через pip
pip3 install flask
pip3 install waitress

После чего запустить приложение, напр:

  • py.exe my_webapp.py
  • python my_webapp.py
  • python3 my_webapp.py